Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
The map-obj package is a utility that allows you to map object keys and values into a new object. It provides a simple way to transform objects based on a mapping function.
Mapping keys and values
You can map the keys and values of an object to new keys and values. For example, you can take an object with keys 'foo' and 'bar' and transform them into 'newFoo' and 'newBar' with corresponding values.
{"newKey": "newValue"}
Custom mapping function
The package allows you to provide a custom mapping function that receives the key and value of each property and returns a new key-value pair array. This function is applied to each property in the original object.
const mapObj = require('map-obj');
const newObject = mapObj({ foo: 'bar' }, (key, value) => [key.toUpperCase(), value.repeat(3)]);
Deep mapping
map-obj supports deep mapping, which means you can apply the mapping function recursively to nested objects.
const mapObj = require('map-obj');
const newObject = mapObj({ foo: { bar: 'baz' } }, (key, value) => [key, value], { deep: true });
Target option
You can specify a target object to which the mapped properties will be assigned. This allows you to merge the new properties with an existing object.
const mapObj = require('map-obj');
const target = { existing: 'prop' };
const newObject = mapObj({ foo: 'bar' }, (key, value) => [key, value], { target });
lodash.mapkeys is a method from the Lodash library that allows you to create an object with the same values as the original object but with keys mapped using a provided function. It is similar to map-obj but is part of the larger Lodash utility library.
object-map is a package that provides a function to map the values of an object to new values based on a provided function. It is similar to map-obj but focuses only on mapping values, not keys.
deep-map-object is a package that allows deep mapping of object keys and values. It is similar to map-obj's deep mapping feature but is specifically designed for deep transformations.
Map object keys and values into a new object
$ npm install --save map-obj
const mapObj = require('map-obj');
const newObject = mapObj({foo: 'bar'}, (key, value) => [value, key]);
//=> {bar: 'foo'}
Type: Object
Source object to copy properties from.
Type: Function
Mapping function.
mapper(sourceKey, sourceValue, source)
.[targetKey, targetValue]
.Type: boolean
Default: false
Recurse nested objects and objects in arrays.
Type: Object
Default: {}
Target object to map properties on to.
MIT © Sindre Sorhus
FAQs
Map object keys and values into a new object
The npm package map-obj receives a total of 22,791,482 weekly downloads. As such, map-obj popularity was classified as popular.
We found that map-obj demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.